//express 里的中间件(middleware)
//中间件: 类似各种插件 扩展express 的各种功能
//中间件: 1.自定义中间件 2.内置中间件 3. 错误处理中间件   4.第三方中间件
//中间件本质就是函数  通过express 里的use 方法调用
//1.中间件里的参数是互通的 2.中间件的执行顺序(洋葱模型)  先执行最外层 然后由内向外执行 不是依次执行的
const express = require("express");
let app = express();

let m1 = function (req, res, next) {
  console.log("我是m1中间件start");
  req.money = 100;
  next();
  console.log("我是m1中间件end");
};
let m2 = function (req, res, next) {
  console.log("我是m2中间件start");
  req.money -= 10;
  next();
  console.log("我是m2中间件end");
};
let m3 = function (req, res, next) {
  console.log("我是m3中间件start");
  req.money -= 10;
  next();
  console.log("我是m3中间件end");
};

app.use(m1); //使用m1中间件;
app.use(m2);
app.use(m3);

app.get("/", (req, res) => {
  res.send("主页" + req.money);
});
app.listen(8989);
